package com.xiaolin.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.xiaolin.admin.model.entity.SysRole;

import java.util.List;

/**
 * <p>
 * 角色表 服务类
 * </p>
 *
 * @author xiaolin
 * @since 2024-07-29
 */
public interface SysRoleService extends IService<SysRole> {
    List<SysRole> getList(SysRole role);

    PageInfo<SysRole> getRolePage(Integer page, Integer pageSize, SysRole role);

    void checkUnique(SysRole role);

    void checkUserRelation(Integer roleId);

    void deleteMenuRelation(Integer roleId);

    void deleteOrgRelation(Integer roleId);

    boolean addRole(SysRole role);

    SysRole getRole(Integer id);

    boolean updateRole(SysRole role);

    boolean status(Integer id, String status);

    boolean deleteRole(Integer id);

    boolean configRoleForUsers(Integer roleId, String optType, List<Integer> userIds);

    List<Integer> getBoundUsers(Integer roleId);

    boolean configMenuForRole(Integer roleId, List<Integer> menuIds);

    List<Integer> getBoundMenus(Integer roleId);

    boolean configOrgForRole(Integer roleId, List<Integer> orgIds);

    List<Integer> getBoundOrgs(Integer roleId);

    List<String> getUserRoles();
}
